package xin.clips.system.domain.gy;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import xin.clips.common.annotation.Excel;
import xin.clips.common.core.domain.BaseEntity;
import xin.clips.common.core.domain.entity.SysUser;

/**
 * 工单信息对象 gy_work_order
 *
 * @author clips
 * @date 2023-03-10
 */
public class GyWorkOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long workId;

    /**
     * 工单名称
     */
    @Excel(name = "工单名称")
    private String name;

    /**
     * 工单编号
     */
    @Excel(name = "工单编号")
    private String eventNumber;

    /**
     * 设备类型
     */
    @Excel(name = "设备类型")
    private Integer deviceType;

    /**
     * 工单描述
     */
    @Excel(name = "工单描述")
    private String description;

    /**
     * 计划完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planFinshTime;

    /**
     * 工单状态：0:待处理，1:处理中，2:申请完成，3:已完成，4:已拒绝
     */
    @Excel(name = "工单状态：0:待处理，1:处理中，2:申请完成，3:已完成，4:已拒绝")
    private Integer workStatus;

    /**
     * 工单类型，1：告警，2：预警
     */
    @Excel(name = "工单类型")
    private String workType;

    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 实际完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 处理内容说明
     */
    @Excel(name = "处理内容说明")
    private String processContent;

    /**
     * 处理附件地址
     */
    @Excel(name = "处理附件地址")
    private String filePath;
    /**
     * 处理附件地址
     */
    @Excel(name = "处理附件名称")
    private String fileName;

    /**
     * 处理人id
     */
    @Excel(name = "处理人id")
    private Long processUserId;

    /**
     * 审核人id
     */
    @Excel(name = "审核人id")
    private Long auditUserId;

    /**
     * 审核意见
     */
    @Excel(name = "审核意见")
    private String memo;

    private Integer count;


    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    /**
     * 主要责任人
     */
    private Long primaryUserId;

    /**
     * 相关责任人
     */
    private String otherUserIds;

    private Long currentUserId;

    private SysUser processUser;

    private String auditUserName;

    private String auditPhone;

    private String dat;

    public String getDat() {
        return dat;
    }

    public void setDat(String dat) {
        this.dat = dat;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getAuditUserName() {
        return auditUserName;
    }

    public void setAuditUserName(String auditUserName) {
        this.auditUserName = auditUserName;
    }

    public String getAuditPhone() {
        return auditPhone;
    }

    public void setAuditPhone(String auditPhone) {
        this.auditPhone = auditPhone;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public SysUser getProcessUser() {
        return processUser;
    }

    public void setProcessUser(SysUser processUser) {
        this.processUser = processUser;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getCurrentUserId() {
        return currentUserId;
    }

    public void setCurrentUserId(Long currentUserId) {
        this.currentUserId = currentUserId;
    }

    public Long getPrimaryUserId() {
        return primaryUserId;
    }

    public void setPrimaryUserId(Long primaryUserId) {
        this.primaryUserId = primaryUserId;
    }

    public String getOtherUserIds() {
        return otherUserIds;
    }

    public void setOtherUserIds(String otherUserIds) {
        this.otherUserIds = otherUserIds;
    }

    public void setWorkId(Long workId) {
        this.workId = workId;
    }

    public Long getWorkId() {
        return workId;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setEventNumber(String eventNumber) {
        this.eventNumber = eventNumber;
    }

    public String getEventNumber() {
        return eventNumber;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setPlanFinshTime(Date planFinshTime) {
        this.planFinshTime = planFinshTime;
    }

    public Date getPlanFinshTime() {
        return planFinshTime;
    }

    public void setWorkStatus(Integer workStatus) {
        this.workStatus = workStatus;
    }

    public Integer getWorkStatus() {
        return workStatus;
    }

    public void setWorkType(String workType) {
        this.workType = workType;
    }

    public String getWorkType() {
        return workType;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setProcessContent(String processContent) {
        this.processContent = processContent;
    }

    public String getProcessContent() {
        return processContent;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setProcessUserId(Long processUserId) {
        this.processUserId = processUserId;
    }

    public Long getProcessUserId() {
        return processUserId;
    }

    public void setAuditUserId(Long auditUserId) {
        this.auditUserId = auditUserId;
    }

    public Long getAuditUserId() {
        return auditUserId;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMemo() {
        return memo;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("workId", getWorkId())
                .append("name", getName())
                .append("eventNumber", getEventNumber())
                .append("deviceType", getDeviceType())
                .append("description", getDescription())
                .append("planFinshTime", getPlanFinshTime())
                .append("workStatus", getWorkStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("workType", getWorkType())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("processContent", getProcessContent())
                .append("filePath", getFilePath())
                .append("processUserId", getProcessUserId())
                .append("auditUserId", getAuditUserId())
                .append("memo", getMemo())

                .toString();
    }
}
